/**
 * 代码生成类型枚举
 */
export enum CodeGenTypeEnum {
  HTML = 'html',
  MULTI_FILE = 'multi_file',
}

/**
 * 代码生成类型配置
 */
export const CODE_GEN_TYPE_CONFIG = {
  [CodeGenTypeEnum.HTML]: {
    label: '原生 HTML 模式',
    value: CodeGenTypeEnum.HTML,
  },
  [CodeGenTypeEnum.MULTI_FILE]: {
    label: '原生多文件模式',
    value: CodeGenTypeEnum.MULTI_FILE,
  },
} as const

/**
 * 代码生成类型选项（用于下拉选择）
 */
export const CODE_GEN_TYPE_OPTIONS = Object.values(CODE_GEN_TYPE_CONFIG).map((config) => ({
  label: config.label,
  value: config.value,
}))

/**
 * 获取代码生成类型标签
 * @param type 代码生成类型
 * @returns 类型标签文本
 */
export function getCodeGenTypeLabel(type: string): string {
  return CODE_GEN_TYPE_CONFIG[type as CodeGenTypeEnum]?.label || '未知类型'
}

/**
 * 验证是否为有效的代码生成类型
 * @param type 要验证的类型
 * @returns 是否有效
 */
export function isValidCodeGenType(type: string): boolean {
  return type in CODE_GEN_TYPE_CONFIG
}
